Repository navigation
fix(desktop): support PAYDAY: The Heist Update 23 loaders - #151
Merged
Merged
Conversation
Contributor
Deploying Modrex previews with
|
| App preview: | https://app-preview.modrex.net/pr/151 |
| Site preview: | https://site-preview.modrex.net/pr/151 |
PAYDAY: The Heist Update 23 reads assets/mod_overrides itself and adds DB:create_entry and DB:remove_entry, which is what PDTHModOverrides backported. Its DINPUT8.dll proxy also collides with the proxy DAHM now ships, so installing it would stop DAHM from loading. Replace the game-specific pdth_overrides loader with a generic built_in package kind. A dependency on a built_in mod page always reads as met and nothing is installed for it. The PDTH package declares mod 53474 with it.
The DAHM release for PAYDAY: The Heist Update 23 is a dinput8.dll proxy that loads pdthhook.dll, and it no longer ships lightfx.dll. The old lightfx.dll hook does not work with the updated game. Detecting by lightfx.dll reported a fresh DAHM install as missing and a broken old one as installed. The proxy name is shared with other loaders, so detect the pdthhook.dll payload instead.
These comments named PDTH loader DLLs that the previous two commits changed. Keep only the game-independent rule each comment states.
ShulhaOleh
force-pushed
the
fix/pdth-update-23-loaders
branch
from
October 21, 2026 15:52
f6b2a6d to
689e95d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
PAYDAY: The Heist Update 23 (October 20, 2026) changed how both of its loaders work, and Modrex was getting both wrong.
assets/mod_overridesitself and addsDB:create_entryandDB:remove_entry, which is everything PDTHModOverrides (ModWorkshop 53474) backported. ItsDINPUT8.dllproxy also has the same name as the proxy DAHM now ships, so installing it from Modrex would replace DAHM's proxy and stop DAHM from loading.dinput8.dllpluspdthhook.dlland no longer shipslightfx.dll. Its author says the old hook does not work with the new build. Modrex looked forlightfx.dll, so a fresh DAHM install read as missing, and a broken old install read as installed.Changes:
pdth_overridesloader kind with a genericbuilt_inpackage kind. A dependency on abuilt_inmod page always reads as met, and nothing is installed for it. The PDTH package declares 53474 with it, so the game fact lives only inpackage.toml. Abuilt_inloader with no mod ids fails package validation.pdthhook.dll. Thedinput8.dllproxy name is not unique to DAHM.Evidence: the Steam Update 23 changelog, the DAHM author's announcement on the dahm4pd Steam group, and the current DAHM archive itself. The
pdthhook.dllstrings include "using the game's built-in mod_overrides support" and "file(s) from assets/mod_overrides".Not included: removing an existing PDTHModOverrides install. Its hardcoded hook offset is likely broken on the new build, but no crash has been reported yet.
Type of change
Translation (if applicable)
See the translation guide.
Validation
bun checks)Details:
bun checksat the branch head: everything passed except one renderer test, which timed out. That test (App.test.tsx, PAYDAY 3 Nexus source restore) is unrelated to this change, and it passed 3/3 on its own. The full renderer suite then passed 623/623.cargo testpassed at the first commit on its own and at the branch head (1034 unit tests plus the package validation and reference export tests).cargo clippy --all-targets -- -D warningsis clean.preview/fixtures/loaders.jsonwas edited by hand to matchlist_loaders(), because its exporter needs ModWorkshop, which was returning 502.